package com.cqupt.sendMes.service;

import com.cqupt.sendMes.dto.TaskDTO;
import com.cqupt.sendMes.dto.TaskQueryDTO;
import com.cqupt.sendMes.entity.BandTask;
import com.cqupt.sendMes.entity.Task;
import com.cqupt.sendMes.utils.Message;
import com.cqupt.sendMes.utils.PageResult;
import com.cqupt.sendMes.utils.Result;

import java.util.List;

public interface TaskService {
    //发送消息
    List<Result> sendMes(Message message);

    //新增任务
    Boolean addTask(TaskDTO taskDTO);

    //查询任务
    PageResult<Task> queryTask(TaskQueryDTO taskQueryDTO);

    //删除任务
    Boolean deleteTask(Integer id);

    //修改任务
    Boolean updateTask(TaskDTO taskDTO);

    //修改任务状态
    Boolean changeStatus(Integer taskId, String status);

    //用户绑定任务
    Boolean bandTask(Integer taskId);

    /**
     * 获取用户订阅的所有任务
     * */
    List<BandTask> getBandTasks();

    /**
     * 获取用户订阅的单个任务
     * */
    BandTask getBandTaskById(Integer taskId);


    //用户解绑任务
    Boolean unBandTask(Integer taskId);


    List<Task> getTaskList();

    Task getTaskById(Integer taskId);

    void validateTask(Task task);

    void validatedAuth(Task task);
}
